/* 读取文件，并用 tab 键分隔每行，返回第0个 */
#include<iostream>
#include <fstream>
using namespace std;

string ename;

/*
$ g++ a2_read_file.cpp
$ ./a.out ReadMe.txt
*/

// 对一行字符串，获取tab分隔的第0个元素
string GetWordtab(int &n,string ssline)
{
    string p;
    int n2 = n;
    int s = ssline.size();
    // 到 \t 停止
    while(n < s &&
            ssline[n] != '\t'){    
        n++;
    }
    //截取位置
    if(n-n2 > 0)
        p = ssline.substr(n2,n-n2);
    // 移动n到下一个位置
    n++;
    return p;
}

int main(int argn, char** args){
    int i=0, n;
    ifstream exi;
    ename=args[1];
    string sline, word;

    // 打开文件流
    exi.open(ename.c_str(), ios::in);
    if(!exi){
        cout << "Couldn't open " << ename << endl;
        exit(-1);
    }

    // 读取文件内容
    while(getline(exi, sline)){
        i++;
        if(sline[0] == '@') //跳过 @开头的行
            continue;
        //cout << i << ": " << sline << endl;
        // 获取tab分隔的第0个
        n = 0;
		word = GetWordtab(n,sline);  //提取tab分隔的单词，要第一个
        cout << n << "|" << word << "|" << endl;
    }

    // 关闭文件流
    exi.close();
    cout << "读取文件结束" << endl;
    return 0;
}